#ifndef DEFAULTSCENE_H
#define DEFAULTSCENE_H

#include <AGTObjectSystem/ObjectSceneManager.h>
#include <AGTRenderSystem/RenderManager.h>

class DefaultScene : public ObjectScene
{
private:	// Attributes
public:		// Methods
	DefaultScene()
	{
		if(addToManager())
		{
			setupScene();
			createScene();
		}
	};
	~DefaultScene(){};

	void setupScene(void)
	{
		// Only setup scene attributes. Other things such as light is based on Objects and manage by
		// the object manager.
		// Scene setup for shadows and skybox
		m_SceneMgr = RenderManager::getSingleton()->getRoot()->createSceneManager(Ogre::ST_GENERIC,m_SceneName);
		m_SceneMgr->setAmbientLight(Ogre::ColourValue(0.8,0.5,0.8));
		
	}

	void createScene(void)
	{
		// Create scene creates all objects-component objects in the scene. Object must be added to the scenes
		// object manage in order to get updated. Needed for message handling and updating components in objects

		// Empty for default scene
	};

	bool addToManager(void)
	{
		return ObjectSceneManager::getSingleton()->ManageScene(this);
	};
};

#endif